﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PGI.EN.Categoria;
using PGI.LN.Categoria;

namespace PGI.WF
{
    public partial class FrmCategoriaInsertar : Form
    {
        public int EstadoForm = 0;
        public int nodoSeleccionado = -1;
        public string nodoSeleccionadoTxt = "";

        public FrmCategoriaInsertar()
        {
            InitializeComponent();
        }
        
        private void FrmCategoriaInsertar_Load(object sender, EventArgs e)
        {
            if (EstadoForm == 1) //---- INSERTAR
            {
                this.Text = "Categoria: Insertar";
                btnAgregarCat.Width = 130;
                btnAgregarCat.Image = ilbtnAgregar.Images[0];
                btnAgregarCat.Text = "Agregar (Enter)";

                gbInsertarCat.Text = "Está insertando en: " + nodoSeleccionadoTxt;
            }
            if (EstadoForm == 2) //---- EDITAR
            {
                this.Text = "Categoria: Editar";
                txtDescripcion.Text = nodoSeleccionadoTxt;

                btnAgregarCat.Width = 130;
                btnAgregarCat.Image = ilbtnAgregar.Images[1];
                btnAgregarCat.Text = "Editar (Enter)";

                gbInsertarCat.Text = "Está Editando: " + nodoSeleccionadoTxt;
            }
        }
                
        private void FrmCategoriaInsertar_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                btnAgregarCat_Click(sender, e);
            if (e.KeyCode == Keys.Escape)
                btnCerrar_Click(sender, e);
        }

        private void btnAgregarCat_Click(object sender, EventArgs e)
        {
            if (txtDescripcion.Text.Trim() != "")
            {
                int usuarioID = 1;

                if (EstadoForm == 1)
                {

                    DialogResult dr = MessageBox.Show(this, "¿Desea agregar la nueva categoria: " + txtDescripcion.Text + "?", "Pregunta:", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {

                        CategoriaEn CategoriaForm = new CategoriaEn();

                        CategoriaForm.SubCategoriaID = nodoSeleccionado;
                        CategoriaForm.Descripcion = txtDescripcion.Text;
                        CategoriaForm.UsuarioID = usuarioID;

                        int catIns = CategoriaLn.InsertarCategoria(CategoriaForm);

                        MessageBox.Show(this, "Se guardó correctamente la Categoria: " + txtDescripcion.Text, "Información: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (EstadoForm == 2)
                {                    
                    DialogResult dr = MessageBox.Show(this, "¿Desea editar la Categoria: " + txtDescripcion.Text + "?", "Pregunta:", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {
                        CategoriaEn CategoriaForm = new CategoriaEn();

                        CategoriaForm.CategoriaID = nodoSeleccionado;
                        CategoriaForm.Descripcion = txtDescripcion.Text;
                        CategoriaForm.UsuarioID = usuarioID;

                        int catIns = CategoriaLn.EditarCategoria(CategoriaForm);

                        MessageBox.Show(this, "Se actualizó correctamente la Categoria: " + txtDescripcion.Text, "Información: ", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
                this.Dispose();
            }
            else
                MessageBox.Show(this, "Debe ingresar una descripción.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {            
            DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dr == DialogResult.Yes)
                this.Dispose();
            
        }

        private void validaControles()
        {
            string msj = "";
            
            if (txtDescripcion.Text.Trim() == "")
                msj += "Debe ingresar una Descripción";

            if (msj != "")
                MessageBox.Show(msj);
        }

        private void txtSubCategoria_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
            {
                e.Handled = true;
            }
        }

        private void FrmCategoriaInsertar_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!this.IsDisposed)
            {
                DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                    this.Dispose();
                else
                    e.Cancel = true;
            }
        }

        

    }
}
